home *** CD-ROM | disk | FTP | other *** search
- //***********************************************************************
- //
- // CtlDemo1.cpp
- //
- //***********************************************************************
-
- #include <afxwin.h>
- #include "Resource.h"
- #include "CtlDemo1.h"
-
- CMyApp myApp;
-
- /////////////////////////////////////////////////////////////////////////
- // CMyApp member functions
-
- BOOL CMyApp::InitInstance ()
- {
- m_pMainWnd = new CMainWindow;
- m_pMainWnd->ShowWindow (m_nCmdShow);
- m_pMainWnd->UpdateWindow ();
- return TRUE;
- }
-
- /////////////////////////////////////////////////////////////////////////
- // CMainWindow message map and member functions
-
- BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
- ON_WM_CREATE ()
- ON_WM_SIZE ()
- ON_WM_SETFOCUS ()
- ON_COMMAND (IDM_FILE_NEW, OnFileNew)
- ON_COMMAND (IDM_FILE_EXIT, OnFileExit)
- ON_COMMAND (IDM_EDIT_UNDO, OnEditUndo)
- ON_COMMAND (IDM_EDIT_CUT, OnEditCut)
- ON_COMMAND (IDM_EDIT_COPY, OnEditCopy)
- ON_COMMAND (IDM_EDIT_PASTE, OnEditPaste)
- ON_COMMAND (IDM_EDIT_DELETE, OnEditDelete)
- ON_UPDATE_COMMAND_UI (IDM_EDIT_UNDO, OnUpdateEditUndoUI)
- ON_UPDATE_COMMAND_UI (IDM_EDIT_CUT, OnUpdateEditCutUI)
- ON_UPDATE_COMMAND_UI (IDM_EDIT_COPY, OnUpdateEditCopyUI)
- ON_UPDATE_COMMAND_UI (IDM_EDIT_PASTE, OnUpdateEditPasteUI)
- ON_UPDATE_COMMAND_UI (IDM_EDIT_DELETE, OnUpdateEditDeleteUI)
- END_MESSAGE_MAP ()
-
- CMainWindow::CMainWindow ()
- {
- Create (NULL, "CtlDemo1", WS_OVERLAPPEDWINDOW,
- rectDefault, NULL, MAKEINTRESOURCE (IDR_MAINFRAME));
-
- LoadAccelTable (MAKEINTRESOURCE (IDR_MAINFRAME));
- }
-
- int CMainWindow::OnCreate (LPCREATESTRUCT lpcs)
- {
- if (CFrameWnd::OnCreate (lpcs) == -1)
- return -1;
-
- m_ctlEdit.Create (WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE |
- ES_AUTOVSCROLL, CRect (0, 0, 0, 0), this, IDC_EDIT);
-
- m_ctlEdit.SetMargins (8, 8);
- return 0;
- }
-
- void CMainWindow::OnSize (UINT nType, int cx, int cy)
- {
- CFrameWnd::OnSize (nType, cx, cy);
- m_ctlEdit.MoveWindow (0, 0, cx, cy);
- }
-
- void CMainWindow::OnSetFocus (CWnd* pOldWnd)
- {
- m_ctlEdit.SetFocus ();
- }
-
- void CMainWindow::OnFileNew ()
- {
- m_ctlEdit.SetWindowText ("");
- }
-
- void CMainWindow::OnFileExit ()
- {
- SendMessage (WM_CLOSE, 0, 0);
- }
-
- void CMainWindow::OnEditUndo ()
- {
- m_ctlEdit.Undo ();
- }
-
- void CMainWindow::OnEditCut ()
- {
- m_ctlEdit.Cut ();
- }
-
- void CMainWindow::OnEditCopy ()
- {
- m_ctlEdit.Copy ();
- }
-
- void CMainWindow::OnEditPaste ()
- {
- m_ctlEdit.Paste ();
- }
-
- void CMainWindow::OnEditDelete ()
- {
- m_ctlEdit.Clear ();
- }
-
- void CMainWindow::OnUpdateEditUndoUI (CCmdUI* pCmdUI)
- {
- pCmdUI->Enable (m_ctlEdit.CanUndo ());
- }
-
- void CMainWindow::OnUpdateEditCutUI (CCmdUI* pCmdUI)
- {
- pCmdUI->Enable (IsTextSelected ());
- }
-
- void CMainWindow::OnUpdateEditCopyUI (CCmdUI* pCmdUI)
- {
- pCmdUI->Enable (IsTextSelected ());
- }
-
- void CMainWindow::OnUpdateEditPasteUI (CCmdUI* pCmdUI)
- {
- pCmdUI->Enable (::IsClipboardFormatAvailable (CF_TEXT));
- }
-
- void CMainWindow::OnUpdateEditDeleteUI (CCmdUI* pCmdUI)
- {
- pCmdUI->Enable (IsTextSelected ());
- }
-
- BOOL CMainWindow::IsTextSelected ()
- {
- int nStart, nEnd;
- m_ctlEdit.GetSel (nStart, nEnd);
- return (nStart != nEnd);
- }
-